package com.ruoyi.labdata.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.ruoyi.labdata.domain.LabEmployeeRole;
import com.ruoyi.system.domain.SysUserRole;

/**
 * 用户和角色关联Service接口
 * 
 * @author winner pan
 * @date 2022-05-03
 */
public interface ILabEmployeeRoleService 
{
    /**
     * 查询用户和角色关联
     * 
     * @param employeeId 用户和角色关联ID
     * @return 用户和角色关联
     */
    public LabEmployeeRole selectLabEmployeeRoleById(Long employeeId);

    /**
     * 查询用户和角色关联列表
     * 
     * @param labEmployeeRole 用户和角色关联
     * @return 用户和角色关联集合
     */
    public List<Long> selectRolesByEmployeeId(Long employeeId);

    /**
     * 新增用户和角色关联
     * 
     * @param labEmployeeRole 用户和角色关联
     * @return 结果
     */
    public int insertLabEmployeeRole(LabEmployeeRole labEmployeeRole);

    /**
     * 修改用户和角色关联
     * 
     * @param labEmployeeRole 用户和角色关联
     * @return 结果
     */
    public int updateLabEmployeeRole(LabEmployeeRole labEmployeeRole);

    /**
     * 批量删除用户和角色关联
     * 
     * @param employeeIds 需要删除的用户和角色关联ID
     * @return 结果
     */
    public int deleteLabEmployeeRoleByIds(Long[] employeeIds);

    /**
     * 删除用户和角色关联信息
     * 
     * @param employeeId 用户和角色关联ID
     * @return 结果
     */
    public int deleteLabEmployeeRoleById(Long employeeId);
    
    /**
     * 批量新增用户角色信息
     * 
     * @param userRoleList 用户角色列表
     * @return 结果
     */
    public int batchLabEmployeeRole(List<LabEmployeeRole> labEmployeeRoleList);

    /**
     * 删除用户和角色关联信息
     * 
     * @param userRole 用户和角色关联信息
     * @return 结果
     */
    public int deleteLabEmployeeRoleInfo(LabEmployeeRole labEmployeeRole);

    /**
     * 批量取消授权用户角色
     * 
     * @param roleId 角色ID
     * @param userIds 需要删除的用户数据ID
     * @return 结果
     */
    public int deleteLabEmployeeRoleInfos(@Param("roleId") Long roleId, @Param("employeeIds") Long[] employeeIds);
}
